데이터 분할
IT 위키
더 많은 작업
- 한정된 데이터를 학습용 데이터, 검증용 데이터, 평가용 데이터 등으로 분할하여 사용하는 기법
모형을 학습할 데이터와 평가할 데이터를 어떻게 나누느냐에 따라 아래 방법이 있다.
| 방법 | 나누는 방식 | 특징 |
|---|---|---|
| 홀드아웃(Holdout) | 원천 데이터를 무작위로 두 분류로 나누어 하나는 학습 데이터, 하나는 평가 데이터로 쓴다. 보통 학습 70%, 평가 30% 정도로 나눈다 | 가장 간단하다. 한 번만 나누므로 어떻게 나뉘었는지에 따라 결과가 달라지고, 평가용으로 뺀 만큼 학습 데이터가 줄어든다 |
| K-폴드 교차 검증(K-Fold Cross Validation) | 데이터를 k개 묶음으로 나누어 k−1개로 학습하고 나머지 1개로 평가하는 일을 k번 반복한 뒤 평균한다 | 모든 데이터가 한 번씩 평가에 쓰인다. k번 학습하므로 계산량이 많다 |
| LOOCV(Leave-One-Out) | k를 데이터 개수 n으로 둔 K-폴드. 관측치 하나만 빼고 학습해 그 하나로 평가한다 | 데이터가 적을 때 쓴다. n번 학습해야 한다 |
| 부트스트랩(Bootstrap) | 전체 데이터에서 복원 추출로 같은 크기의 학습 데이터를 만들고, 뽑히지 않은 데이터로 평가한다 | 한 번도 뽑히지 않는 데이터가 약 36.8% 생긴다. 데이터가 적을 때 쓴다 |
| 계층별 K-폴드(Stratified K-Fold) | 각 묶음의 클래스 비율이 전체와 같도록 나눈다 | 클래스 불균형이 있는 분류 문제에 쓴다 |
학습용, 평가용으로만 나누기도 하고 학습용, 검증용, 평가용으로 나누기도 한다.
- 학습용 데이터(Training Set): 데이터를 학습하여 분석 모형을 만드는데 직접적으로 활용되는 데이터
- 검증용 데이터(Validation Set): 과적합, 부적합 등 모형의 성능을 개선시키기 위한 데이터
- 평가용 데이터(Test Set): 모델 성능 개선 및 적합성 검증용 데이터
- 검증 세트(Validation)와 비슷하지만, 모델을 구축하거나 튜닝할 때 포함된 적 없다는 점에서 차이
- 데이터의 대표성: 학습용 데이터와 평가용 데이터은 전체 데이터에 대한 대표성을 가져야 함
- 시간의 방향성: 과거 데이터로부터 미래 데이터를 예측하고자 할 경우에는 데이터를 섞을 수 없음
- 학습용 데이터에 있는 데이터보다 평가용 데이터의 모든 데이터가 미래의 것으로 구성
- 데이터 중복 : 각 훈련, 검증, 평가 데이터셋에는 데이터 포인트의 중복이 없도록 구성
모형 선정의 첫번째 과정으로 데이터 분할이 사용된다.
- 1. 데이터 분할
- 2. 분석 모형 학습
- 3. 분석 모형 검증
- 4. 분석 모형 선택
- 5. 분석 모형 전개
- 6. 분석 모형 모니터링
- 7. 분석 모형 리모델링
| 데이터 | 쓰임 |
|---|---|
| 학습(훈련) 데이터 | 모델을 학습시킨다 |
| 검증 데이터 | 학습 중에 하이퍼파라미터를 고르고 과적합 여부를 확인한다. 학습 데이터를 한 번 더 나누어 만든다. 검증 오차가 늘기 시작하면 학습을 멈추는 조기 종료(Early Stopping)에 쓴다 |
| 평가(테스트) 데이터 | 최종 모델의 성능 평가에만 쓴다. 학습에 써서는 안 되고 학습 데이터와 섞여서도 안 된다 |
- "검증용 데이터는 모델 성능 평가에 사용한다" 는 틀리다. 최종 성능 평가는 테스트 데이터로 한다.
